package cc.linker.steplink.crm.merchant.dao;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ShopGoodsColumnDao {
    //添加商品专栏
    boolean insert(Map<String, Object> params);

    boolean update(Map<String, Object> params);

    //boolean delete(long COLUMN_ID)

    /*
     * 获取专栏信息
     * */
    Map<String, Object> getShopGoodsColumnModel(long columnId);

    /*
     * 获取专栏、商品关联信息
     * */
    Map<String, Object> getShopGoodsColumnDetail(Map<String, Object> map);

    /**
     * 获取商品专栏列表
     * Title：专栏名称
     * shopStatus：销售状态，包括“全部”、“上架中”和“已下架”
     * columnStatus：更新状态：包括“全部、更新中、已完结”
     * grop：分组：包括“全部以及后台添加的分组”
     * shopType：商品类型：包括“全部”、“自有商品”和“联盟商品”
     */
    List<Map<String, Object>> getShopGoodsColumnList(Map<String, Object> params);

    /*
     * 获取商品专栏列表总数
     * */
    Integer getShopGoodsColumnListCount(Map<String, Object> params);

    /*
     * 更新专栏
     * Status：更新值
     * Type：更新类型 0：更新状态(COLUMN_STATUS 1.更新中 2.已完结) 1：删除
     * */
    boolean updateColumnStatus(@Param(value = "columnId") long columnId, @Param(value = "status") Integer status, @Param(value = "type") Integer type);

    /*
     * 添加专栏、内关联
     * columnId：专栏ID
     * contentIds：内容ID
     * */
    boolean AddCloumnContent(@Param(value = "columnId") long columnId, @Param(value = "contentIds") List<Long> contentIds, @Param("maxSerialNum") Integer maxSerialNum);

    /*
     * 删除专栏、内容关联
     * columnId：专栏ID
     * contentId：要删除的内容ID
     * */
    boolean DeleteCloumnContent(@Param(value = "columnId") long columnId, @Param(value = "contentId") long contentId);


    List<Map<String, Object>> getAllList(Map<String, Object> params);

    /**
     * 通过专栏id查内容的goodsId
     */
    List<String> getContentGoodsIdListByColumnId(String columnId);
}